TOP

SQL FULL OUTER JOIN Palavra-chave

SQL FULL OUTER JOIN Descrição

A palavra-chave FULL OUTER JOIN retorna todos os registros se houver uma correspondência nos registros esquerdo (tabela1) ou direito (tabela2) da tabela.


As instruções FULL OUTER JOIN e FULL JOIN são as mesmas.

FULL OUTER JOIN Sintaxe

SELECT column_name(s)
FROM table1
FULL OUTER JOIN table2
ON table1.column_name = table2.column_name
WHERE condition

SQL FULL JOIN

Banco de dados de demonstração

Neste tutorial usaremos o famoso banco de dados de exemplo "Northwind".

Abaixo está um exemplo da tabela "Customers" ("Clientes"):

CustomerIDCustomerNameContactNameAddressCityPostalCodeCountry
1Alfreds FutterkisteMaria AndersObere Str. 57Berlin12209Germany
2Ana Trujillo Emparedados y heladosAna TrujilloAvda. de la Constitución 2222México D.F.5021Mexico
3Antonio Moreno TaqueríaAntonio MorenoMataderos 2312México D.F.5023Mexico
4Around the HornThomas Hardy120 Hanover Sq.LondonWA1 1DPUK
5Berglunds snabbköpChristina BerglundBerguvsvägen 8LuleåS-958 22Sweden

E a amostra da tabela "Orders" ("Pedidos"):

ProductIDOrderIDCustomerIDEmployeeIDOrderDateShipperID
1102489051996-07-043
2102498161996-07-051
3102503441996-07-082
4102518431996-07-081
5102527641996-07-092

SQL FULL OUTER JOIN Exemplo

A seguinte instrução SQL seleciona todos os clientes e todos os pedidos:

Run SQLSELECT Customers.CustomerName, Orders.OrderID 
FROM Customers 
FULL OUTER JOIN Orders ON Customers.CustomerID = Orders.CustomerID 
ORDER BY Customers.CustomerName

Uma amostra do conjunto de resultados pode ter esta aparência:

CustomerName OrderID
Null 10309
Null 10310
Alfreds Futterkiste Null
Ana Trujillo Emparedados y helados 10308
Antonio Moreno Taquería Null
A palavra-chave FULL OUTER JOIN retorna todos os registros correspondentes de ambas as tabelas, independentemente de a outra tabela corresponder ou não. Portanto, se houver linhas em "Customers" ("Clientes") que não tenham correspondências em "Orders" ("Pedidos"), ou se houver linhas em "Pedidos" que não tenham correspondências em "Clientes", essas linhas também serão serão listados.